#ifndef APP_HPP
#define APP_HPP

#include "define.hpp"
#include "ressource/RessourceManager.hpp"
#include "states/AppStateManager.hpp"

class ScriptLoader;

class App
{
public:
	App(std::string AppTitle = "Donkey Kong Country Rebirth");
	virtual ~App();

	void Run();

	bool isRunning();

	void Init();

	void PreInit();

	void ChangeResolution(int x = 0,int y = 0);

	void Loop();

	void CleanUp();

	void Quit();

	RessourceManager m_ressourceManager;

    AppStateManager m_stateManager;

	sf::RenderWindow m_window;

private:
	bool m_running;

	sf::VideoMode m_videoMode;

	std::string m_appTitle;

	const sf::Input& m_input;

};


#endif
